{"version":3,"sources":["webpack:///./src/layout/TitledPage.tsx","webpack:///src/Playlist.tsx","webpack:///./src/pages/music.tsx","webpack:///../node_modules/react-infinite-scroller/index.js","webpack:///../node_modules/react-infinite-scroller/dist/InfiniteScroll.js"],"names":["TitledPage","children","title","as","size","color","marginBottom","paddingBottom","borderBottomWidth","borderBottomStyle","borderBottomColor","borderWidth","borderStyle","borderColor","rounded","textAlign","module","exports","Object","defineProperty","value","_createClass","defineProperties","target","props","i","length","descriptor","enumerable","configurable","writable","key","Constructor","protoProps","staticProps","prototype","_react","_react2","_interopRequireDefault","_propTypes2","obj","__esModule","default","InfiniteScroll","_Component","instance","TypeError","_classCallCheck","this","_this","self","call","ReferenceError","_possibleConstructorReturn","__proto__","getPrototypeOf","scrollListener","bind","eventListenerOptions","mousewheelListener","subClass","superClass","create","constructor","setPrototypeOf","_inherits","pageLoaded","pageStart","options","attachScrollListener","isReverse","loadMore","parentElement","getParentElement","scrollComponent","scrollTop","scrollHeight","beforeScrollHeight","beforeScrollTop","detachScrollListener","detachMousewheelListener","passive","testOptions","document","addEventListener","removeEventListener","e","useCapture","isPassiveSupported","loader","defaultLoader","scrollEl","window","useWindow","parentNode","el","scrollParent","getScrollParent","hasMore","initialLoad","deltaY","preventDefault","offset","doc","documentElement","body","undefined","pageYOffset","calculateOffset","clientHeight","Number","threshold","offsetParent","calculateTopPosition","offsetHeight","innerHeight","offsetTop","_this2","renderProps","filterProps","element","ref","keys","indexOf","hasOwnProperty","_objectWithoutProperties","node","childrenArray","unshift","push","createElement","Component","propTypes","isRequired","bool","func","number","defaultProps"],"mappings":"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","file":"component---src-pages-music-tsx-51773cc8f12b9c2fb46e.js","sourcesContent":["import {Box, Heading} from \"@chakra-ui/react\";\nimport React from \"react\";\n\nexport interface TitledPageProps {\n title: string | React.ReactNode;\n}\n\nconst TitledPage: React.FC = ({children, title}) => (\n \n {title}\n {children}\n \n)\n\nexport default TitledPage","var __assign = (this && this.__assign) || function () {\n __assign = Object.assign || function(t) {\n for (var s, i = 1, n = arguments.length; i < n; i++) {\n s = arguments[i];\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p))\n t[p] = s[p];\n }\n return t;\n };\n return __assign.apply(this, arguments);\n};\nvar __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n Object.defineProperty(o, k2, { enumerable: true, get: function() { return m[k]; } });\n}) : (function(o, m, k, k2) {\n if (k2 === undefined) k2 = k;\n o[k2] = m[k];\n}));\nvar __setModuleDefault = (this && this.__setModuleDefault) || (Object.create ? (function(o, v) {\n Object.defineProperty(o, \"default\", { enumerable: true, value: v });\n}) : function(o, v) {\n o[\"default\"] = v;\n});\nvar __importStar = (this && this.__importStar) || function (mod) {\n if (mod && mod.__esModule) return mod;\n var result = {};\n if (mod != null) for (var k in mod) if (k !== \"default\" && Object.hasOwnProperty.call(mod, k)) __createBinding(result, mod, k);\n __setModuleDefault(result, mod);\n return result;\n};\nvar __rest = (this && this.__rest) || function (s, e) {\n var t = {};\n for (var p in s) if (Object.prototype.hasOwnProperty.call(s, p) && e.indexOf(p) < 0)\n t[p] = s[p];\n if (s != null && typeof Object.getOwnPropertySymbols === \"function\")\n for (var i = 0, p = Object.getOwnPropertySymbols(s); i < p.length; i++) {\n if (e.indexOf(p[i]) < 0 && Object.prototype.propertyIsEnumerable.call(s, p[i]))\n t[p[i]] = s[p[i]];\n }\n return t;\n};\nvar __importDefault = (this && this.__importDefault) || function (mod) {\n return (mod && mod.__esModule) ? mod : { \"default\": mod };\n};\nObject.defineProperty(exports, \"__esModule\", { value: true });\nvar react_1 = require(\"@chakra-ui/react\");\nvar react_2 = __importStar(require(\"react\"));\nvar queries_1 = require(\"./__generated__/queries\");\nvar react_infinite_scroller_1 = __importDefault(require(\"react-infinite-scroller\"));\nfunction songRow(_a) {\n var id = _a.id, track = _a.track;\n var song = track.song;\n var songName = song.name, disc = song.disc, artist = song.artist;\n var album = disc.album;\n var albumName = album.name, circle = album.circle;\n var tlmcArtist = artist.tlmc[0];\n var artistName = tlmcArtist.__typename === 'TlmcArtist' ? tlmcArtist.name : 'Unknown';\n var tlmcCircle = circle.tlmc[0];\n var circleName = tlmcCircle.__typename === 'TlmcCircle' ? tlmcCircle.name : 'Unknown';\n return (react_2.default.createElement(react_1.Tr, { key: id, color: id === 0 ? 'primary.700' : id === 1 ? 'primary.800' : 'black' },\n react_2.default.createElement(react_1.Td, null, id),\n react_2.default.createElement(react_1.Td, null, songName),\n react_2.default.createElement(react_1.Td, null, albumName),\n react_2.default.createElement(react_1.Td, null, artistName),\n react_2.default.createElement(react_1.Td, null, circleName)));\n}\nvar Playlist = function () {\n var _a;\n var _b = queries_1.useDeckInfoQuery(), deckData = _b.data, deckLoading = _b.loading, deckError = _b.error;\n var _c = queries_1.usePlaylistQuery({\n variables: {\n limit: 8,\n },\n }), data = _c.data, loading = _c.loading, error = _c.error, refetch = _c.refetch, fetchMore = _c.fetchMore;\n var sortedDecks = react_2.useMemo(function () {\n /* Get the decks or empty list */\n return ((deckData === null || deckData === void 0 ? void 0 : deckData.decks) || sortedDecks || [])\n /* Clone the deck prior to sorting */\n .slice()\n /* Sort the decks on playing status */\n .sort((function (a, b) { return b.playing !== a.playing ? (b.playing ? 1 : -1) : 0; }))\n /* Correct the id to the index (in accordance with playlist id) */\n .map(function (_a, idx) {\n var id = _a.id, rest = __rest(_a, [\"id\"]);\n return (__assign({ id: idx }, rest));\n });\n }, [deckData]);\n var sortedPlaylist = react_2.useMemo(function () {\n var _a;\n /* Get the playlist */\n return (((_a = data === null || data === void 0 ? void 0 : data.playlist) === null || _a === void 0 ? void 0 : _a.edges) || (sortedPlaylist && sortedPlaylist.map(function (item) { return ({ node: item }); })) || [])\n /* Add the length of the deck count to correct for the slots in the decks */\n .map(function (_a) {\n var _b = _a.node, id = _b.id, rest = __rest(_b, [\"id\"]);\n return (__assign({ id: id + sortedDecks.length }, rest));\n });\n }, [data, sortedDecks]);\n react_2.useEffect(function () {\n refetch();\n }, [deckData]);\n var loadMore = function () {\n var _a;\n if ((_a = data === null || data === void 0 ? void 0 : data.playlist) === null || _a === void 0 ? void 0 : _a.pageInfo.hasNextPage) {\n fetchMore({\n variables: {\n after: data === null || data === void 0 ? void 0 : data.playlist.pageInfo.endCursor,\n }\n });\n }\n };\n return (react_2.default.createElement(react_1.Table, null,\n react_2.default.createElement(react_1.Thead, null,\n react_2.default.createElement(react_1.Tr, null,\n react_2.default.createElement(react_1.Th, null, \"Position\"),\n react_2.default.createElement(react_1.Th, null, \"Song\"),\n react_2.default.createElement(react_1.Th, null, \"Artist\"),\n react_2.default.createElement(react_1.Th, null, \"Album\"),\n react_2.default.createElement(react_1.Th, null, \"Circle\"))),\n react_2.default.createElement(react_infinite_scroller_1.default, { loadMore: loadMore, hasMore: (_a = data === null || data === void 0 ? void 0 : data.playlist) === null || _a === void 0 ? void 0 : _a.pageInfo.hasNextPage, loader: react_2.default.createElement(react_1.Tr, null,\n react_2.default.createElement(react_1.Td, { colSpan: 5 },\n react_2.default.createElement(react_1.Alert, { status: \"info\" }, \"Loading more...\"))), element: \"tbody\" },\n deckError\n ?\n react_2.default.createElement(react_1.Alert, { status: \"error\" }, deckError.message)\n :\n deckLoading || !deckData ? react_2.default.createElement(react_1.Alert, { status: \"info\" }, \"Loading...\")\n :\n sortedDecks.map(songRow),\n error ?\n error.message.split('\\n').map(function (line, idx) { return react_2.default.createElement(react_1.Tr, null,\n react_2.default.createElement(react_1.Td, { colSpan: 5 },\n react_2.default.createElement(react_1.Alert, { status: \"error\", key: idx }, line))); }) :\n loading && !data ? react_2.default.createElement(react_1.Tr, null,\n react_2.default.createElement(react_1.Td, { colSpan: 5 },\n react_2.default.createElement(react_1.Alert, { status: \"info\" }, \"Loading...\")))\n : sortedPlaylist.map(songRow))));\n};\nexports.default = Playlist;\n//# sourceMappingURL=Playlist.js.map","import * as React from 'react'\nimport TitledPage from \"../layout/TitledPage\";\nimport {Heading, Box} from \"@chakra-ui/react\";\nimport Playlist from \"touhou-fm/Playlist\";\n\nexport default () => \n \n Playlist\n \n \n","module.exports = require('./dist/InfiniteScroll');","'use strict';\n\nObject.defineProperty(exports, \"__esModule\", {\n value: true\n});\n\nvar _createClass = function () {\n function defineProperties(target, props) {\n for (var i = 0; i < props.length; i++) {\n var descriptor = props[i];\n descriptor.enumerable = descriptor.enumerable || false;\n descriptor.configurable = true;\n if (\"value\" in descriptor) descriptor.writable = true;\n Object.defineProperty(target, descriptor.key, descriptor);\n }\n }\n\n return function (Constructor, protoProps, staticProps) {\n if (protoProps) defineProperties(Constructor.prototype, protoProps);\n if (staticProps) defineProperties(Constructor, staticProps);\n return Constructor;\n };\n}();\n\nvar _react = require('react');\n\nvar _react2 = _interopRequireDefault(_react);\n\nvar _propTypes = require('prop-types');\n\nvar _propTypes2 = _interopRequireDefault(_propTypes);\n\nfunction _interopRequireDefault(obj) {\n return obj && obj.__esModule ? obj : {\n default: obj\n };\n}\n\nfunction _objectWithoutProperties(obj, keys) {\n var target = {};\n\n for (var i in obj) {\n if (keys.indexOf(i) >= 0) continue;\n if (!Object.prototype.hasOwnProperty.call(obj, i)) continue;\n target[i] = obj[i];\n }\n\n return target;\n}\n\nfunction _classCallCheck(instance, Constructor) {\n if (!(instance instanceof Constructor)) {\n throw new TypeError(\"Cannot call a class as a function\");\n }\n}\n\nfunction _possibleConstructorReturn(self, call) {\n if (!self) {\n throw new ReferenceError(\"this hasn't been initialised - super() hasn't been called\");\n }\n\n return call && (typeof call === \"object\" || typeof call === \"function\") ? call : self;\n}\n\nfunction _inherits(subClass, superClass) {\n if (typeof superClass !== \"function\" && superClass !== null) {\n throw new TypeError(\"Super expression must either be null or a function, not \" + typeof superClass);\n }\n\n subClass.prototype = Object.create(superClass && superClass.prototype, {\n constructor: {\n value: subClass,\n enumerable: false,\n writable: true,\n configurable: true\n }\n });\n if (superClass) Object.setPrototypeOf ? Object.setPrototypeOf(subClass, superClass) : subClass.__proto__ = superClass;\n}\n\nvar InfiniteScroll = function (_Component) {\n _inherits(InfiniteScroll, _Component);\n\n function InfiniteScroll(props) {\n _classCallCheck(this, InfiniteScroll);\n\n var _this = _possibleConstructorReturn(this, (InfiniteScroll.__proto__ || Object.getPrototypeOf(InfiniteScroll)).call(this, props));\n\n _this.scrollListener = _this.scrollListener.bind(_this);\n _this.eventListenerOptions = _this.eventListenerOptions.bind(_this);\n _this.mousewheelListener = _this.mousewheelListener.bind(_this);\n return _this;\n }\n\n _createClass(InfiniteScroll, [{\n key: 'componentDidMount',\n value: function componentDidMount() {\n this.pageLoaded = this.props.pageStart;\n this.options = this.eventListenerOptions();\n this.attachScrollListener();\n }\n }, {\n key: 'componentDidUpdate',\n value: function componentDidUpdate() {\n if (this.props.isReverse && this.loadMore) {\n var parentElement = this.getParentElement(this.scrollComponent);\n parentElement.scrollTop = parentElement.scrollHeight - this.beforeScrollHeight + this.beforeScrollTop;\n this.loadMore = false;\n }\n\n this.attachScrollListener();\n }\n }, {\n key: 'componentWillUnmount',\n value: function componentWillUnmount() {\n this.detachScrollListener();\n this.detachMousewheelListener();\n }\n }, {\n key: 'isPassiveSupported',\n value: function isPassiveSupported() {\n var passive = false;\n var testOptions = {\n get passive() {\n passive = true;\n }\n\n };\n\n try {\n document.addEventListener('test', null, testOptions);\n document.removeEventListener('test', null, testOptions);\n } catch (e) {// ignore\n }\n\n return passive;\n }\n }, {\n key: 'eventListenerOptions',\n value: function eventListenerOptions() {\n var options = this.props.useCapture;\n\n if (this.isPassiveSupported()) {\n options = {\n useCapture: this.props.useCapture,\n passive: true\n };\n }\n\n return options;\n } // Set a defaut loader for all your `InfiniteScroll` components\n\n }, {\n key: 'setDefaultLoader',\n value: function setDefaultLoader(loader) {\n this.defaultLoader = loader;\n }\n }, {\n key: 'detachMousewheelListener',\n value: function detachMousewheelListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.scrollComponent.parentNode;\n }\n\n scrollEl.removeEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'detachScrollListener',\n value: function detachScrollListener() {\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = this.getParentElement(this.scrollComponent);\n }\n\n scrollEl.removeEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.removeEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n }\n }, {\n key: 'getParentElement',\n value: function getParentElement(el) {\n var scrollParent = this.props.getScrollParent && this.props.getScrollParent();\n\n if (scrollParent != null) {\n return scrollParent;\n }\n\n return el && el.parentNode;\n }\n }, {\n key: 'filterProps',\n value: function filterProps(props) {\n return props;\n }\n }, {\n key: 'attachScrollListener',\n value: function attachScrollListener() {\n var parentElement = this.getParentElement(this.scrollComponent);\n\n if (!this.props.hasMore || !parentElement) {\n return;\n }\n\n var scrollEl = window;\n\n if (this.props.useWindow === false) {\n scrollEl = parentElement;\n }\n\n scrollEl.addEventListener('mousewheel', this.mousewheelListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('scroll', this.scrollListener, this.options ? this.options : this.props.useCapture);\n scrollEl.addEventListener('resize', this.scrollListener, this.options ? this.options : this.props.useCapture);\n\n if (this.props.initialLoad) {\n this.scrollListener();\n }\n }\n }, {\n key: 'mousewheelListener',\n value: function mousewheelListener(e) {\n // Prevents Chrome hangups\n // See: https://stackoverflow.com/questions/47524205/random-high-content-download-time-in-chrome/47684257#47684257\n if (e.deltaY === 1 && !this.isPassiveSupported()) {\n e.preventDefault();\n }\n }\n }, {\n key: 'scrollListener',\n value: function scrollListener() {\n var el = this.scrollComponent;\n var scrollEl = window;\n var parentNode = this.getParentElement(el);\n var offset = void 0;\n\n if (this.props.useWindow) {\n var doc = document.documentElement || document.body.parentNode || document.body;\n var scrollTop = scrollEl.pageYOffset !== undefined ? scrollEl.pageYOffset : doc.scrollTop;\n\n if (this.props.isReverse) {\n offset = scrollTop;\n } else {\n offset = this.calculateOffset(el, scrollTop);\n }\n } else if (this.props.isReverse) {\n offset = parentNode.scrollTop;\n } else {\n offset = el.scrollHeight - parentNode.scrollTop - parentNode.clientHeight;\n } // Here we make sure the element is visible as well as checking the offset\n\n\n if (offset < Number(this.props.threshold) && el && el.offsetParent !== null) {\n this.detachScrollListener();\n this.beforeScrollHeight = parentNode.scrollHeight;\n this.beforeScrollTop = parentNode.scrollTop; // Call loadMore after detachScrollListener to allow for non-async loadMore functions\n\n if (typeof this.props.loadMore === 'function') {\n this.props.loadMore(this.pageLoaded += 1);\n this.loadMore = true;\n }\n }\n }\n }, {\n key: 'calculateOffset',\n value: function calculateOffset(el, scrollTop) {\n if (!el) {\n return 0;\n }\n\n return this.calculateTopPosition(el) + (el.offsetHeight - scrollTop - window.innerHeight);\n }\n }, {\n key: 'calculateTopPosition',\n value: function calculateTopPosition(el) {\n if (!el) {\n return 0;\n }\n\n return el.offsetTop + this.calculateTopPosition(el.offsetParent);\n }\n }, {\n key: 'render',\n value: function render() {\n var _this2 = this;\n\n var renderProps = this.filterProps(this.props);\n\n var children = renderProps.children,\n element = renderProps.element,\n hasMore = renderProps.hasMore,\n initialLoad = renderProps.initialLoad,\n isReverse = renderProps.isReverse,\n loader = renderProps.loader,\n loadMore = renderProps.loadMore,\n pageStart = renderProps.pageStart,\n ref = renderProps.ref,\n threshold = renderProps.threshold,\n useCapture = renderProps.useCapture,\n useWindow = renderProps.useWindow,\n getScrollParent = renderProps.getScrollParent,\n props = _objectWithoutProperties(renderProps, ['children', 'element', 'hasMore', 'initialLoad', 'isReverse', 'loader', 'loadMore', 'pageStart', 'ref', 'threshold', 'useCapture', 'useWindow', 'getScrollParent']);\n\n props.ref = function (node) {\n _this2.scrollComponent = node;\n\n if (ref) {\n ref(node);\n }\n };\n\n var childrenArray = [children];\n\n if (hasMore) {\n if (loader) {\n isReverse ? childrenArray.unshift(loader) : childrenArray.push(loader);\n } else if (this.defaultLoader) {\n isReverse ? childrenArray.unshift(this.defaultLoader) : childrenArray.push(this.defaultLoader);\n }\n }\n\n return _react2.default.createElement(element, props, childrenArray);\n }\n }]);\n\n return InfiniteScroll;\n}(_react.Component);\n\nInfiniteScroll.propTypes = {\n children: _propTypes2.default.node.isRequired,\n element: _propTypes2.default.node,\n hasMore: _propTypes2.default.bool,\n initialLoad: _propTypes2.default.bool,\n isReverse: _propTypes2.default.bool,\n loader: _propTypes2.default.node,\n loadMore: _propTypes2.default.func.isRequired,\n pageStart: _propTypes2.default.number,\n ref: _propTypes2.default.func,\n getScrollParent: _propTypes2.default.func,\n threshold: _propTypes2.default.number,\n useCapture: _propTypes2.default.bool,\n useWindow: _propTypes2.default.bool\n};\nInfiniteScroll.defaultProps = {\n element: 'div',\n hasMore: false,\n initialLoad: true,\n pageStart: 0,\n ref: null,\n threshold: 250,\n useWindow: true,\n isReverse: false,\n useCapture: false,\n loader: null,\n getScrollParent: null\n};\nexports.default = InfiniteScroll;\nmodule.exports = exports['default'];"],"sourceRoot":""}